/**
 * archivo:TrucoFrame.java
 * autor: acabrera
 * fecha: 10/10/2011
 */
package ar.org.libre.truco.api.main;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;

import org.apache.log4j.Logger;

import ar.org.libre.truco.api.Juego;
import ar.org.libre.truco.api.Naipe;
import ar.org.libre.truco.api.util.NaipeUtil;


/**
 * @author acabrera
 * @since 10/10/2011
 */
public class TrucoFrame extends JFrame {

	private static final Logger log=Logger.getLogger(TrucoFrame.class);
	/**
	 * 
	 */
	JFrame root;
	/**
	 * 
	 */
	JButton boAceptar;
	/**
	 * 
	 */
	JButton boCancelar;
	/**
	 * 
	 */
	JCheckBox ckNaipe;
	JPanel pImagen;
	
	
	/**
	 * constructor de vista
	 */
	public TrucoFrame(JFrame root) {
		this.root=root;
		generarInterfaz();
		root.setVisible(Boolean.TRUE);
	}
	/**
	 * genero la interfaz del juego
	 */
	private void generarInterfaz(){
		JPanel jBotones = new JPanel();
		JPanel jCartas = new JPanel();
		// agrego botones
		boAceptar = new JButton("Comenzar juego");
		boAceptar.setIcon(new ImageIcon(getClass().getResource("/ar/org/libre/truco/api/icon/cargar.png")));
		jBotones.add(boAceptar, BorderLayout.NORTH);
		boCancelar = new JButton("Cancelar");
		boCancelar.setIcon(new ImageIcon(getClass().getResource("/ar/org/libre/truco/api/icon/salir.png")));
		jBotones.add(boCancelar,BorderLayout.NORTH);
		cargarEventos();								
		root.add(jBotones,BorderLayout.NORTH);
		
		ckNaipe=new JCheckBox("Naipe");
		jCartas.add(ckNaipe,BorderLayout.SOUTH);		
		root.add(jCartas,1);
		root.add(pImagen,2);
		root.setBounds(0, 0, 500, 500);		
		root.setTitle("Truco");
	}
	/**
	 * llamado al juego
	 */
	private void cargarEventos(){
		boAceptar.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent e) {
					jugar();				
			}
		});
		boCancelar.addActionListener(new ActionListener() {

			public void actionPerformed(ActionEvent e) {
				if(JOptionPane.showConfirmDialog(TrucoFrame.this, "desea salir del truco?","Salir Truco", JOptionPane.YES_NO_OPTION)==0){
					root.dispose();					
				}
			}
		});
		pImagen=new JPanel() {

	        @Override
	        public void paint(Graphics g) {
	        			Image img1= new ImageIcon(getClass().getResource("/ar/org/libre/truco/api/icon/cargar.png")).getImage();
	                    g.drawImage(img1, 100, 10, null);	            
	        }
	    };
	}
	private void jugar(){
		Juego juego= new Juego();
		juego.getNaipes().add(NaipeUtil.generarNaipe());
		juego.getNaipes().add(NaipeUtil.generarNaipe());
		juego.getNaipes().add(NaipeUtil.generarNaipe());
		Juego juego2= new Juego();
		juego2.getNaipes().add(NaipeUtil.generarNaipe());
		juego2.getNaipes().add(NaipeUtil.generarNaipe());
		juego2.getNaipes().add(NaipeUtil.generarNaipe());
		log.info("naipeGenerado--->"+NaipeUtil.generarNaipe());
		if(this.ckNaipe.isSelected()){
				log.info("ResultadoComparación--->"+NaipeUtil.resultadoPelea(((Naipe)juego.getNaipes().toArray()[1]),((Naipe) juego2.getNaipes().toArray()[2])));
				log.info("Envido?"+juego.isEnvido());
				if(juego.isEnvido()){
					log.info("Envido="+juego.getEnvido());
				}
		}
	}
}
